
const db = require('../../db')


// 管理获取所有用户
exports.MgetUsers = (req,res)=>{

    if(req.user.uid == 0 || req.user.uid == 9){
        var str = "select id,username,tel,sex,schToken,isdelete from user where uid = 1 "
        db.query(str,(err,results)=>{
            if(err) return res.cc(err)
            res.send({
                status:0,
                message:"查询成功",
                results
            })
        })
    }else{
        res.cc("请联系管理员操作")
    }  
}

// 超管管理获取所有用户
exports.MgetAllUsers = (req,res)=>{

    if(req.user.uid == 9){
        var str = "select uid,id,username,tel,sex,schToken,isdelete from user where uid = 0 or uid = 1"
        db.query(str,(err,results)=>{
            if(err) return res.cc(err)
            res.send({
                status:0,
                message:"查询成功",
                results
            })
        })
    }else{
        res.cc("请联系超级管理员操作")
    }  
}

// 用户封号
exports.MbanUser = (req,res)=>{
   
   
    if(req.user.uid == 0 || req.user.uid == 9){
        var str = "update user set isdelete = 1 where id = ?"
        db.query(str,req.body.id,(err,results)=>{
            if(err) return res.cc(err)
            if(results.affectedRows != 1) return res.cc("封号操作失败")
            res.cc("封禁用户成功",0)
        })
    }else{
        res.cc("请联系管理员操作")
    }  
}
// 用户解封
exports.MunDo = (req,res)=>{
    const isdelete = 0;
    if(req.user.uid == 0 || req.user.uid == 9){
       
        var str = "update user set isdelete = 0 where id = ?"
        db.query(str,req.body.id,(err,results)=>{
            if(err) return res.cc(err)
            if(results.affectedRows != 1) return  res.cc("解封操作失败")
            res.cc("解封用户成功",0)
        })
    }else{
        res.cc("请联系管理员操作")
    }
    
}
// 用户删除
// 删除账号
// 删除发布的二手信息、问答交流、评论
exports.MDelUser = (req,res)=>{
    const isdelete = 0;
    // console.log(req.body.id)
    const id = req.body.id
    if(req.user.uid == 0 || req.user.uid == 9){
    //    删除账号
        var str = "delete from user where id = ?"
        db.query(str,id,(err,results)=>{
            if(err) return res.cc(err)
            // 删除评论
            str = "delete from comments where U_id = ? "
            db.query(str,id,(err,results)=>{
                if(err) return res.cc(err)
                // 删除二手商品
                str = "delete from trade where aut_id = ?"
                db.query(str,id,(err,results)=>{
                    if(err) return res.cc(err)
                    // 删除问答交流商品
                    str = "delete from question where aut_id = ?"
                    db.query(str,id,(err,results)=>{
                        if(err) return res.cc(err)
                       res.cc("注销用户成功",0)
                        
                    })
                })
            })
            
        })
    }else{
        res.cc("请联系管理员操作")
    }
    
}

// 超管设置管理员
exports.MsetManager = (req,res)=>{
    const uid = 0;
 
    if(req.user.uid == 9){
        var str = "update user set uid = 0 where id = ?"
        db.query(str,req.body.id,(err,results)=>{
            if(err) return res.cc(err)
            if(results.affectedRows != 1) return res.cc("设置管理失败")
            res.cc("设置管理成功",0)
        })
    }else{
        res.cc("请联系超级管理员操作")
    }
   
}

// 超管取消管理员  未完成(超级管理员才能设置或取消管理员)
exports.MunManager = (req,res)=>{
    
    
    if( req.user.uid == 9){
        var str = "update user set uid = 1 where id = ?"
        db.query(str,req.body.id,(err,results)=>{
            if(err) return res.cc(err)
            if(results.affectedRows != 1) return res.cc("取消管理失败")
            res.cc("取消管理成功",0)
        })
    }else{
        res.cc("请联系管理员操作")
    }
   
}

// 获取校园公告信息列表(需登录)
exports.MgetSchArt = (req,res)=>{
    if(req.user.uid == 0 || req.user.uid == 9){
        var str = "select * from scharticle order by pubdata desc"
        db.query(str,(err,results)=>{
            if(err) return res.cc(err)
            // if(results.length != 1) return res.cc("数据库错误，稍后请重新尝试")
            res.send({
                status:0,
                message:"获取成功",
                data:results
            })
        })
    }else{
        res.cc("请联系管理员查看")
    }
    
  
}

// 查看校园公告详情(需登录) view+1
exports.MgetDetailSchArt = (req,res)=>{
    const id = req.query.id
    var str = "select * from scharticle where id = ?"
   
        db.query(str,id,(err,results)=>{
            if(err) return res.cc(err)
            if(results.length != 1) return res.cc("数据库错误，稍后请重新尝试")
           
            var views = results[0].view+1
            str = "update scharticle set view = ? where id =?"
            db.query(str,[views,id],(err,result)=>{
                if(err) return res.cc(err)
                if(result.affectedRows != 1) return res.cc("访客记录获取失败")
                res.send({
                    status:0,
                    data:results[0]
                })
            })
        })
}

// 管理获取二手信息列表(所有商品---需登录)
exports.MgetTrade = (req,res)=>{
    var str = "select id,title,pubdata,author,isdown,isdelete from trade order by pubdata desc"
    if(req.user.uid == 0 || req.user.uid == 9){
        db.query(str,(err,results)=>{
            if(err) return res.cc(err)
            res.send({
                status:0,
                message:"获取成功",
                data:results
            })
    
        })
    }else{
        res.cc("请联系管理员查看")
    }
   
}

// 管理获取二手信息列表详情(所有商品---需登录)
exports.MgetDetailTrade = (req,res)=>{
    const id = parseInt(req.query.id)
    var str = "select * from trade where id = ?"
    
    if(req.user.uid == 0 || req.user.uid == 9){
        db.query(str,id,(err,results)=>{
            if(err) return res.cc(err)
            if(results.length != 1) return res.cc("数据库错误，稍后请重新尝试")

            var views = results[0].view+1
            str = "update trade set view = ? where id =?"
            db.query(str,[views,id],(err,result)=>{
                if(err) return res.cc(err)
                if(result.affectedRows != 1) return res.cc("访客记录获取失败")
                res.send({
                    status:0,
                    data:results[0]
                })
            })
        })
    }else{
        res.cc("请联系管理员查看")
    }
   
}


// 管理下架二手商品信息
exports.MdownTrade = (req,res)=>{
    if(req.user.uid == 0 || req.user.uid == 9){
        var str = "update  trade set isdelete = 1 where id = ?"
        db.query(str,req.body.id,(err,results)=>{
            if(err) return res.cc(err)
            if(results.affectedRows != 1) res.cc("下架二手商品失败")
            res.cc("下架二手商品成功",0)
        })
    }else{
        res.cc("请联系管理员操作")
    }
}



// 管理删除二手商品信息(任何二手信息)
// 发布二手信息用户的trade_num-1
exports.MdelTrade = (req,res)=>{
    if(req.user.uid == 0 || req.user.uid == 9){
// 查询发布该二手信息的用户
    const id = req.body.id
    var str = "select * from trade where id = ?"

    db.query(str,id,(err,results)=>{
     
        if(err) return res.cc(err)
        if(results.length != 1) return res.cc("获取信息失败，稍后请重新尝试")
        var dataString = JSON.stringify(results);
        results = JSON.parse(dataString);
        // console.log(results)
        const aut_id = results[0].aut_id
    
        // 删除该二手信息
        str = "delete from trade where id = ?"
        db.query(str,id,(err,results)=>{
            if(err) return res.cc(err)
            if(results.affectedRows != 1) return res.cc("删除失败，稍后请重新尝试")

            // 获取用户的trade_num 且 -1
            str = "select * from user where id = ?"
            db.query(str,aut_id,(err,results)=>{
               
                if(err) return res.cc(err)
                if(results.length != 1) return res.cc("获取信息失败，稍后请重新尝试")
                var dataString = JSON.stringify(results);
                results = JSON.parse(dataString);
                var trade_num = results[0].trade_num
                if(trade_num <= 0){
                    trade_num = 0
                }else{
                    trade_num = trade_num - 1
                }
                // 更新用户的trade_num
                str = "update user set trade_num = ? where id = ?"
                db.query(str,[trade_num,aut_id],(err,results)=>{
                    if(err) return res.cc(err)
                    if(results.affectedRows != 1) return res.cc("用户发帖数量更新失败，稍后请重新尝试")
                    res.cc("删除成功",0)
                })             
            })
            }) 
        })
    }else{
        res.cc("请联系管理员操作")
    }
    
}

// 获取所有问答交流文章列表
exports.MgetQue = (req,res) =>{
    if(req.user.uid == 0 || req.user.uid == 9){
        var str = "select * from question order by pubdata desc"
        db.query(str,(err,results)=>{
            if(err) return res.cc(err)
            res.send({
                status:0,
                message:"获取成功",
                data:results
            })
        })
    }else{
        res.cc("请联系管理员查看")
    }
   
}
// 获取问答交流文章列表详情
exports.MgetDetailQue = (req,res) =>{
    
    var id = req.query.id
    if(req.user.uid == 0 || req.user.uid == 9){
        var str = "select * from question where id = ?"
        db.query(str,id,(err,results)=>{
        
            if(err)  return  res.cc(err)
            if(results.length != 1) return res.cc("数据库错误,请稍后重新查看")
            const views = results[0].view + 1
    
    
            str = "update question set view = ? where id = ?"
            // 每调用一次接口，访问量+1
            db.query(str,[views,id],(err,result)=>{
                if(err) return res.cc(err)
                if(result.affectedRows != 1) return res.cc("访客记录获取失败")
                res.send({
                    status:0,
                    data:results[0]
                })
    
            })
        })
    }else{
        res.cc("请联系管理员查看")
    }
  
}



// 管理删除交流问答 

// 管理删除交流问答信息(任何交流问答 )
// 发布交流问答用户的connect_num-1
// 交流问答相关评论删除
exports.MdelQue = (req,res)=>{
    
    const id = req.body.id

    if(req.user.uid == 0 || req.user.uid == 9){
        var str = "select * from question where id = ?"
        db.query(str,id,(err,results)=>{
            // console.log(results)
            if(err) return res.cc(err)
            if(results.length != 1) return res.cc("获取交流信息失败1，稍后请重新尝试")
            var dataString = JSON.stringify(results);
            results = JSON.parse(dataString);
            const aut_id = results[0].aut_id
            
            // 删除该问答交流
            str = "delete from question where id = ?"
            db.query(str,id,(err,results)=>{
                if(err) return res.cc(err)
                if(results.affectedRows != 1) return res.cc("删除失败，稍后请重新尝试")
                // 删除相关评论
                str = "delete from comments where t_id = ?"
                db.query(str,id,(err,results)=>{
                    if(err) return res.cc(err)
                   
                  
                 // 获取用户的connect_num 且 -1
                str = "select * from user where id = ?"
                db.query(str,aut_id,(err,results)=>{
                    if(err) return res.cc(err)
                    if(results.length != 1) return res.cc("获取用户信息失败2，稍后请重新尝试")
                    var dataString = JSON.stringify(results);
                    results = JSON.parse(dataString);
                    var connect_num = results[0].connect_num
                    if(connect_num <= 0){
                        connect_num = 0
                    }else{
                        connect_num -= 1
                    }
                    // 更新用户的connect_num
                    str = "update user set connect_num = ? where id = ?"
                    db.query(str,[connect_num,aut_id],(err,results)=>{
                        if(err) return res.cc(err)
                        if(results.affectedRows != 1) return res.cc("用户交流问答数更新失败，稍后请重新尝试")
                        res.cc("删除成功",0)
                    })
                    
                })
                })
               
    
            })
            
        })
    }else{
        res.cc("请联系管理员操作")
    }
    
}

// 管理删除评论
exports.MdelComment = (req,res)=>{
     // 传入文章id和评论id cId,qId
     const cId = parseInt(req.body.cId)
     const qId = parseInt(req.body.qId)
     if(req.user.uid == 0 || req.user.uid == 9){
        var str = "select * from question where id = ?"
        db.query(str,qId,(err,results)=>{
            if(err) return res.cc(err)
            if(results.length != 1) return res.cc("数据库错误,删除评论失败")
            var dataString = JSON.stringify(results)
            results = JSON.parse(dataString)
            var commentNum = results[0].commentNum
            if(commentNum <= 0){
                commentNum = 0
            }else{
                commentNum -= 1
            }
            str = "delete from comments where id = ?"
            db.query(str,cId,(err,results)=>{
                if(err) return res.cc(err)
                if(results.affectedRows != 1) return res.cc("数据库错误,删除失败")
                // 更新文章评论数
                str = "update question set commentNum = ? where id = ?"
                db.query(str,[commentNum,qId],(err,results)=>{
                    if(err) return res.cc(err)
                    if(results.affectedRows != 1) return res.cc("更新文章评论数失败")
                    res.cc("删除评论成功",0)
                })
            })
        })
     }else{
        res.cc("请联系管理员操作")
     }
    
}